package com.rzcode.coinex.kernel.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.rzcode.coinex.kernel.common.enums.AnnClazzEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;


@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "announcement")
public class Announcement {

    /**
     * 公告的唯一标识符。
     */
    private Long id;

    /**
     * 公告标题，不能为空。
     */
    @ApiModelProperty(value = "公告标题", required = true, example = "系统维护通知")
    private String title;

    /**
     * 公告内容，存储在数据库中作为TEXT类型。
     */
    @ApiModelProperty(value = "公告内容", example = "尊敬的用户，我们将于今晚进行系统维护，请提前做好准备。")
    private String content;

    /**
     * 创建时间戳，当创建公告时自动设置。
     */
    @ApiModelProperty(value = "创建时间", example = "2023-01-01 12:00:00")
    private LocalDateTime createTime;

    /**
     * 公告分类，不能为空。
     */
    @ApiModelProperty(value = "分类", example = "系统维护")
    private AnnClazzEnum announcementClassification;

    /**
     * 标记公告是否对用户可见。
     */
    @ApiModelProperty(value = "是否显示", example = "true")
    private Boolean isShow;

    /**
     * 公告的语言。
     */
    @ApiModelProperty(value = "语言", example = "zh-CN")
    private String lang;

    /**
     * 标记公告是否被置顶。
     */
    @ApiModelProperty(value = "是否置顶", example = "false")
    private String isTop;

    /**
     * 与公告关联的图片URL。
     */
    @ApiModelProperty(value = "图片URL", example = "http://example.com/image.jpg")
    private String imgUrl;

    /**
     * 公告的排序顺序。
     */
    @ApiModelProperty(value = "排序", example = "1")
    private int sort = 0;
}

